home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple WWDC 1996
/
WWDC96_1996 (CD).toast
/
Technology Materials
/
MacOS 8 Resources
/
Developer Tools
/
Mac OS 8 Interfaces & Libraries
/
Interfaces
/
PInterfaces
/
SCSIPlugin.p
< prev
next >
Wrap
Text File
|
1996-05-01
|
4KB
|
126 lines
{
File: SCSIPlugin.p
Contains: Family defined Plugin exports and data structures
Version: Technology: xxx put the technology version here xxx
Release: Universal Interfaces 3.0d3 on Copland DR1
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
}
{$IFC UNDEFINED UsingIncludes}
{$SETC UsingIncludes := 0}
{$ENDC}
{$IFC NOT UsingIncludes}
UNIT SCSIPlugin;
INTERFACE
{$ENDC}
{$IFC UNDEFINED __SCSIPLUGIN__}
{$SETC __SCSIPLUGIN__ := 1}
{$I+}
{$SETC SCSIPluginIncludes := UsingIncludes}
{$SETC UsingIncludes := 1}
{$IFC UNDEFINED __TYPES__}
{$I Types.p}
{$ENDC}
{$IFC UNDEFINED __KERNEL__}
{$I Kernel.p}
{$ENDC}
{$IFC UNDEFINED __SCSI__}
{$I SCSI.p}
{$ENDC}
{$PUSH}
{$ALIGN POWER}
{$LibExport+}
{$IFC FOR_SYSTEM8_PREEMPTIVE }
{
************************************************************************
Define entries to SIM routines
************************************************************************
SIMInitInfo PB
directions are for SCSIPluginInit call ( -> parm, <- result) */
need to change this to PluginControlBlock ***
}
TYPE
PluginControlBlockPtr = ^PluginControlBlock;
PluginControlBlock = RECORD
ioPBSize: UInt16; { <- size of SCSI_IO_PBs required for this SIM }
oldCallCapable: UInt16; { <- true if this SIM can handle old-API calls }
busID: UInt16; { <- bus number for the registered bus }
simSlotNumber: SInt8; { <- Magic cookie to place in scsiHBASlotNumber (PCI) }
simSRsrcID: SInt8; { <- Magic cookie to place in scsiSIMsRsrcID (PCI) }
simRegEntry: Ptr; { -> The SIM's RegEntryIDPtr (PCI) }
maxTargetID: UInt32; { <- max Target ID of this bus }
initiatorID: UInt32; { <- comes from the NVRAM }
scsiTimeout: UInt32; { <- bus time out period }
scsiFlagsSupported: UInt32; { <- scsiFlags supported by this SIM }
scsiSelectTimeout: SInt16; { <- selection time out period }
scsiIOFlagsSupported: UInt16; { <- scsiIOFlags supported by this SIM }
scsiDataTypes: UInt32; { <- scsiDataType supported by this SIM }
{ *** need to remove the following declares ASAP plugin is ready }
{ SCSIPluginActionEntry scsiPluginAction; // address of SIM action routine }
{ SCSIPluginHandleBusEventEntry scsiPluginHandleBusEvent; }
{ SCSIPluginInitEntry scsiPluginInit; }
END;
{ Define SIM calls passed into the family at initialize time }
SCSIPluginActionEntry = ProcPtr; { PROCEDURE SCSIPluginActionEntry(VAR scsiPB: SCSI_PB); C; }
SCSIPluginHandleBusEventEntry = ProcPtr; { PROCEDURE SCSIPluginHandleBusEventEntry(busEvent: UNIV Ptr); C; }
SCSIPluginInitEntry = ProcPtr; { FUNCTION SCSIPluginInitEntry(VAR pcb: PluginControlBlock): OSStatus; C; }
CONST
kSCSIPluginVersion = $02019600; { date and version *** temporary }
TYPE
SCSIPluginInfoPtr = ^SCSIPluginInfo;
SCSIPluginInfo = RECORD
version: UInt32;
reserved1: UInt32;
reserved2: UInt32;
reserved3: UInt32;
END;
{ plugin needs to export this structure }
SCSIPluginDispatchTablePtr = ^SCSIPluginDispatchTable;
SCSIPluginDispatchTable = RECORD
header: SCSIPluginInfo;
scsiPluginAction: SCSIPluginActionEntry; { address of SIM action routine }
scsiPluginHandleBusEvent: SCSIPluginHandleBusEventEntry;
scsiPluginInit: SCSIPluginInitEntry;
END;
PROCEDURE SCSIPluginAction(VAR scsiPB: SCSI_PB); C;
PROCEDURE SCSIPluginHandleBusEvent(busEvent: UNIV Ptr); C;
FUNCTION SCSIPluginInit(VAR pcb: PluginControlBlock): OSStatus; C;
PROCEDURE SCSIFamMakeCallback(VAR req: SCSI_PB); C;
FUNCTION SCSIFamBusEventForSIM(busID: UInt32; busEvent: UNIV Ptr): OSStatus; C;
{$ENDC}
{$ALIGN RESET}
{$POP}
{$SETC UsingIncludes := SCSIPluginIncludes}
{$ENDC} {__SCSIPLUGIN__}
{$IFC NOT UsingIncludes}
END.
{$ENDC}